//
//  HikerView.swift
//  SwiftUi
//
//  Created by xm on 30/08/2025.
//

import SwiftUI

struct HikeView: View {
    var hike: Hike
    @State private var showDetail = false
    
    var transition: AnyTransition {
        let insertion = AnyTransition.move(edge: .trailing)
            .combined(with: .opacity)
        
        let removal = AnyTransition.scale.combined(with: .opacity)
        return .asymmetric(insertion: insertion, removal: removal)
    }
    
    
    
    var body: some View {
        VStack {
            HStack {
                HikeGraph(hike: hike, path: \.elevation)
                    .frame(width: 50, height: 30)
                                    
                VStack(alignment: .leading) {
                    Text(verbatim: hike.name)
                        .font(.headline)
                    Text(verbatim: hike.distanceText)
                }
                
                Spacer()

                Button(action: {
                    withAnimation {
                        self.showDetail.toggle()
                    }
                }) {
                    Image(systemName: "chevron.right.circle")
                        .imageScale(.large)
                        .rotationEffect(.degrees(showDetail ? 90 : 0))
                        .scaleEffect(showDetail ? 1.5 : 1)
                        .padding()
                        .animation(.spring)
                }
//                .frame(width: 50, height: 50)
//                .background(.blue)
            }
            

            if showDetail {
                HikeDetail(hike: hike)
                    .transition(transition)
            }
            Spacer()
        }.padding()
    }
}


#Preview {
    
    HikeView(hike: hikes[0])
    Spacer()
    
}

//struct HikeView_Previews: PreviewProvider {
//    static var previews: some View {
//        VStack {
//            HikeView(hike: hikes[0])
//                .padding()
//            Spacer()
//        }
//    }
//}
